package com.newstore.database;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.newstore.classes.User;

/**
 * Permet de faire le lien entre les objets Barcode et la base de données
 * @author Guillaume
 * @version 1.0
*/
public class UserDatabase
{
	private SQLiteDatabase databaseQueries;
	
	/**
	 * Constructeur
	 * @param databaseQueries : Base de données où les requêtes vont s'effectuer
	 */
	public UserDatabase(SQLiteDatabase databaseQueries)
	{
		this.databaseQueries = databaseQueries;
	}
	
	/**
	 * Effectue une requête pour retourner un user à partir du login et du password
	 * @param login : Login entré dans l'application
	 * @param pwd : Password entré dans l'application
	 * @return L'utilisateur identifié
	 */
	public User getUserFromLoginAndPwd(String login, String pwd)
	{
		Cursor cursor = databaseQueries.query(DatabaseNewstore.TABLE_USER, new String[] {DatabaseNewstore.COL_LOGIN, DatabaseNewstore.COL_PWD, DatabaseNewstore.COL_TYPE},
				" login = \"" + login + "\" AND "  + "password = \"" + pwd +"\"", null, null, null, null);
		return userCursor(cursor);
	}
	
	/**
	 * Cursor qui permet d'avoir un user grâce à une requête
	 * @param cursor : Cursor qui permet de parcourir la requête
	 * @return Le user rempli
	 */
	private User userCursor(Cursor cursor)
	{
		if (cursor.getCount() == 0)
			return null;
		
		cursor.moveToFirst();
		User user = new User(cursor.getString(0), cursor.getString(1), cursor.getString(2));
		cursor.close();
		
		return user;
	}
	
	/**
	 * Permet d'insérer un utilisateur dans la base de données
	 * @param user Utilisateur à insérer
	 */
	public void insertUser(User user)
	{
		ContentValues values = new ContentValues();
		values.put(DatabaseNewstore.COL_LOGIN, user.getLogin());
		values.put(DatabaseNewstore.COL_PWD, user.getPassword());
		values.put(DatabaseNewstore.COL_TYPE, user.getType());
		
		int idNewUser = (int)this.databaseQueries.insert(DatabaseNewstore.TABLE_USER, null, values);	
	}	
}
